/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cx1.model.ds;

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import org.cx1.model.Amenity;
import org.cx1.model.Blog;
import org.cx1.model.Company;
import org.cx1.model.Contact;
import org.cx1.model.FeaturedList;
import org.cx1.model.FeaturedWallpaper;
import org.cx1.model.Inquiry;
import org.cx1.model.Invite;
import org.cx1.model.Lead;
import org.cx1.model.Listing;
import org.cx1.model.Photo;
import org.cx1.model.Place;
import org.cx1.model.deprecated.REDealType;
import org.cx1.model.deprecated.RETypeL1;
import org.cx1.model.deprecated.RETypeL2;
import org.cx1.model.User;
import org.cx1.model.utils.EmailInvitee;
import org.cx1.model.utils.Invitee;
import org.cx1.model.utils.KPlaceTypeIDs;
import org.cx1.model.utils.KPropertyTypeIDs;
import org.cx1.model.utils.KUserTypeIDs;
import org.cx1.model.utils.MobileInvitee;

/**
 *
 * @author ECH
 */
public class MockDS {
    
    private static List<Listing> listings = new ArrayList<Listing>();
    private static List<Place> places = new ArrayList<Place>();
    private static List<Amenity> amenities = new ArrayList<Amenity>();
    
    private static List<User> users = new ArrayList<User>();
    private static List<Photo> photos = new ArrayList<Photo>();
            
    private static List<Company> companies = new ArrayList<Company>();
    private static List<Contact> contacts = new ArrayList<Contact>();
           
    private static List<Invite> invites = new ArrayList<Invite>();
    private static List<Inquiry> inquiries = new ArrayList<Inquiry>(); 
    private static List<Lead> leads = new ArrayList<Lead>(); 
    
    private static List<Invitee> invitees = new ArrayList<Invitee>();
    private static Set<EmailInvitee> emailInvitees = new HashSet<EmailInvitee>();
    private static Set<MobileInvitee> mobileInvitees = new HashSet<MobileInvitee>();
        
    private static List<Blog> blogs = new ArrayList<Blog>();    
    private static List<Photo> stockPhotos = new ArrayList<Photo>();
            
    private static List<FeaturedWallpaper> featuredWallpaper = new ArrayList<FeaturedWallpaper>();
    private static List<FeaturedList> featuredList = new ArrayList<FeaturedList>();
    
    public static PublicKey publicKey = null;
    public static PrivateKey privateKey = null;
    
    static {       
        
        try {
            KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
            kpg.initialize(2048);
            KeyPair kp = kpg.genKeyPair();
            publicKey = kp.getPublic();
            privateKey = kp.getPrivate();
        } 
        catch (Exception ex) {
            ex.printStackTrace();
        }
        
        
        users.add(new User("ad5784ff-d00b-4b9a-8879-9748d73f535d", Arrays.asList(KUserTypeIDs.TENANT), "Shinji Kagawa", "shinji.kagawa@rentpad.me", "1234"));
        users.add(new User("ff9f578c-ac48-40c2-b07a-8798de360698", Arrays.asList(KUserTypeIDs.TENANT), "Jeff Watson", "jeff.watson@rentpad.me", "1234"));
        users.add(new User("9cf564cd-e939-4138-9231-abd849faf764", Arrays.asList(KUserTypeIDs.TENANT), "Chris Aguilar", "chris.aguilar@rentpad.me", "1234"));
        users.add(new User("5df15c0f-6726-4c56-941f-a421c5593c87", Arrays.asList(KUserTypeIDs.AGENT), "Dennis Padilla", "dennis.padilla@rentpad.me", "1234"));
        users.add(new User("49258af9-7655-4dae-b7eb-0e0fe57db1dd", Arrays.asList(KUserTypeIDs.AGENT), "Matt Hulk", "matt.hulk@rentpad.me", "1234"));
        users.add(new User("c28f4979-dca4-482d-ba0c-43d19945bda8", Arrays.asList(KUserTypeIDs.BROKER), "Eric Steele", "eric.steele@rentpad.me", "1234"));
        users.add(new User("8a435400-f469-430a-b11a-aaf247bb6293", Arrays.asList(KUserTypeIDs.BROKER), "Bonera Sanchez", "bonera.sanchez@rentpad.me", "1234"));
        users.add(new User("bbd08215-185e-4c12-821e-455f74ef3cfc", Arrays.asList(KUserTypeIDs.LANDLORD), "David Moyes", "david.moyes@rentpad.me", "1234"));
        users.add(new User("0dcebdcc-53d1-4161-a65c-a2edc1b30636", Arrays.asList(KUserTypeIDs.LANDLORD), "Rafa Benitez", "rafa.benitez@rentpad.me", "1234"));        
        users.add(new User("2d385914-8746-4c1b-9ddb-6e18a7b07d6f", Arrays.asList(KUserTypeIDs.ADMIN, KUserTypeIDs.TENANT), "Chux 18", "chux18@gmail.com", "chux1234"));
        
        places.add(new Place("d5793e13-97ce-43f3-9da5-4cf76f6ed2a0", KPlaceTypeIDs.CITY, "Makati", "Makati, Philippines")); 
        places.add(new Place("df201bd7", KPlaceTypeIDs.CITY, "Taguig", "Taguig, Philippines"));
        places.add(new Place("32e92f36", KPlaceTypeIDs.CITY, "Mandaluyong", "Mandaluyong, Philippines"));
        places.add(new Place("6a0c5a61", KPlaceTypeIDs.CITY, "Pasig", "Pasig, Philippines"));
        places.add(new Place("a8051c01", KPlaceTypeIDs.CITY, "Quezon City", "Quezon City, Philippines"));
        places.add(new Place("df50d00f", KPlaceTypeIDs.CITY, "Manila", "Manila, Philippines"));
        places.add(new Place("ff311092", KPlaceTypeIDs.CITY, "Pasay", "Pasay, Philippines"));
        places.add(new Place("995f7133", KPlaceTypeIDs.CITY, "Paranaque", "Paranaque, Philippines"));
        places.add(new Place("70b7eebc", KPlaceTypeIDs.CITY, "Muntinlupa", "Muntinlupa, Philippines"));
        places.add(new Place("1a3f2047", KPlaceTypeIDs.CITY, "Cebu", "Cebu, Philippines"));
        
        places.add(new Place("3e0d52d2-748a-4c95-8b45-7bd9879261e2", KPlaceTypeIDs.DISTRICT, "San Lorenzo", "Makati, Philippines"));
        places.add(new Place("80e4746d-53cc-42a4-b48a-de7a40ae4e70", KPlaceTypeIDs.DISTRICT, "Bel Air", "Makati, Philippines"));        
        places.add(new Place("6a0624d1-6756-4771-8b68-d15b7a9f3436", KPlaceTypeIDs.DISTRICT, "Salcedo Village", "Makati, Philippines"));
        places.add(new Place("a9895086-b931-4138-a4e7-0bd1f527acf6", KPlaceTypeIDs.DISTRICT, "Legaspi Village", "Makati, Philippines"));
        places.add(new Place("6e3e7c29-fba9-46b1-b685-1082dfc22491", KPlaceTypeIDs.BUILDING, "Grand Soho Makati", "131 H.V. Dela Costa, Makati 1200"));
        places.add(new Place("2e8db3aa-a5ff-49dd-9292-d6d99e21dd42", KPlaceTypeIDs.BUILDING, "LPL Manor", "LPL Manor, 116 L.P. Leviste St Makati"));
                
        amenities.add(new Amenity("cd340137-98df-4cb9-83d7-13941c6f40b3", "balcony", "", ""));
        amenities.add(new Amenity("ae759784-bf62-4d46-8422-5f3915ed4006", "swimming pool", "", ""));
        amenities.add(new Amenity("44b4cefa-8b9b-4c81-a17f-47c2dc262e8e", "gym", "", ""));
        amenities.add(new Amenity("ae535b19-170e-40d3-845e-383c9df3aff9", "function rooms", "", ""));
        
        //listings.add(new Listing("df68b751-0a50-4d05-8d70-288152dd3d47", KPropertyTypeIDs.APARTMENT, "Apartment1", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        //listings.add(new Listing("8b79910e-c435-4d33-8223-6231f7f63f08", KPropertyTypeIDs.APARTMENT, "Apartment2", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        //listings.add(new Listing("74476fef-a888-43e0-97d9-19710a800ba2", KPropertyTypeIDs.APARTMENT, "Apartment3", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        //listings.add(new Listing("4f5d004d-727d-46ec-b956-3a003c79d37a", KPropertyTypeIDs.APARTMENT, "Apartment4", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        
        listings.add(new Listing("8a05dcbb-8dd7-43f2-897b-8e8bb62d8761", KPropertyTypeIDs.CONDOMINIUM, "Condominum1", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("145d4522-40b7-4bb4-b1b5-fd70db7fb8bd", KPropertyTypeIDs.CONDOMINIUM, "Condominum2", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("3ca01ffd-bfd8-43e5-9db1-bb9ae52864a7", KPropertyTypeIDs.CONDOMINIUM, "Condominum3", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("80da6836-e4b7-4c6b-8e5b-e0b2e2ccad3f", KPropertyTypeIDs.CONDOMINIUM, "Condominum4", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        
        listings.add(new Listing("450f60a8-7b16-4d5e-a224-ad0c247fd771", KPropertyTypeIDs.TOWNHOUSE, "Townhouse1", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("b3ddb6dc-74e3-4937-bcf1-e43c66a4ab3c", KPropertyTypeIDs.TOWNHOUSE, "Townhouse2", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("7ba3fc7b-619e-4894-8743-42742a1317cc", KPropertyTypeIDs.TOWNHOUSE, "Townhouse3", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("7aed092d-9720-4a25-8316-2d85db1e1efa", KPropertyTypeIDs.TOWNHOUSE, "Townhouse4", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        
        listings.add(new Listing("e589f1a0-3e41-48e3-bbb7-62e788f86376", KPropertyTypeIDs.HOUSE, "House1", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("691a366b-3329-4b67-a80c-b277b180ecf7", KPropertyTypeIDs.HOUSE, "House2", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("dc2c657a-613b-48f1-abe6-415f69c862d9", KPropertyTypeIDs.HOUSE, "House3", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
        listings.add(new Listing("5d44db0a-b9a6-45df-833e-3cb8035c361a", KPropertyTypeIDs.HOUSE, "House4", "Lorem ipsum dolor sit amet, consectetur adipisicing elit."));
    
        invitees.add(new Invitee("5d44db0a-b9a6-45df-833e-3cb8035c361c", "Chux Gmail", "chux18@gmail.com", "639172430571"));
        invitees.add(new Invitee("5d44db0a-b9a6-45df-833e-3cb8035c361b", "Chux Yahoo", "chux18@yahoo.com", "639172430572"));
    }

    public static List<Listing> getListings() {
        return listings;
    }

    public static void setListings(List<Listing> aListings) {
        listings = aListings;
    }

    public static List<Place> getPlaces() {
        return places;
    }

    public static void setPlaces(List<Place> aPlaces) {
        places = aPlaces;
    }

    public static List<Amenity> getAmenities() {
        return amenities;
    }

    public static void setAmenities(List<Amenity> aAmenities) {
        amenities = aAmenities;
    }

    public static List<User> getUsers() {
        return users;
    }

    public static void setUsers(List<User> aUsers) {
        users = aUsers;
    }

    public static List<Photo> getPhotos() {
        return photos;
    }

    public static void setPhotos(List<Photo> aPhotos) {
        photos = aPhotos;
    }

    public static List<Company> getCompanies() {
        return companies;
    }

    public static void setCompanies(List<Company> aCompanies) {
        companies = aCompanies;
    }

    public static List<Contact> getContacts() {
        return contacts;
    }

    public static void setContacts(List<Contact> aContact) {
        contacts = aContact;
    }

    public static List<Inquiry> getInquiries() {
        return inquiries;
    }

    public static void setInquiries(List<Inquiry> aInquiries) {
        inquiries = aInquiries;
    }

    public static List<Photo> getStockPhotos() {
        return stockPhotos;
    }

    public static void setStockPhotos(List<Photo> aStockPhotos) {
        stockPhotos = aStockPhotos;
    }

    public static List<Invite> getInvites() {
        return invites;
    }

    public static void setInvites(List<Invite> aInvites) {
        invites = aInvites;
    }

    public static List<Invitee> getInvitees() {
        return invitees;
    }

    public static void setInvitees(List<Invitee> aInvitees) {
        invitees = aInvitees;
    }

    public static Set<EmailInvitee> getEmailInvitees() {
        return emailInvitees;
    }

    public static void setEmailInvitees(Set<EmailInvitee> aEmailInvitees) {
        emailInvitees = aEmailInvitees;
    }

    public static Set<MobileInvitee> getMobileInvitees() {
        return mobileInvitees;
    }

    public static void setMobileInvitees(Set<MobileInvitee> aMobileInvitees) {
        mobileInvitees = aMobileInvitees;
    }

    public static List<Blog> getBlogs() {
        return blogs;
    }

    public static void setBlogs(List<Blog> aBlogs) {
        blogs = aBlogs;
    }

    public static List<Lead> getLeads() {
        return leads;
    }

    public static void setLeads(List<Lead> aLeads) {
        leads = aLeads;
    }

    public static List<FeaturedWallpaper> getFeaturedWallpaper() {
        return featuredWallpaper;
    }

    public static void setFeaturedWallpaper(List<FeaturedWallpaper> aFeaturedWallpaper) {
        featuredWallpaper = aFeaturedWallpaper;
    }

    public static List<FeaturedList> getFeaturedList() {
        return featuredList;
    }

    public static void setFeaturedList(List<FeaturedList> aFeaturedList) {
        featuredList = aFeaturedList;
    }

    
}
